home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / c / flashpc.exe / FPCWIN.H < prev    next >
C/C++ Source or Header  |  1993-03-25  |  19KB  |  616 lines

  1. /*--------------------------------------------------------------------
  2. -                     Copyright (C) 1988-1992
  3. -                         SimpleSoft Inc.
  4. -
  5. - Written by..... Kevin Dahl
  6. - Module name.... fpwin.h
  7. - Date created... 5/5/91
  8. - Purpose........
  9. -
  10. --------------------------------------------------------------------*/
  11.  
  12. #ifndef FPCWIN
  13. #define FPCWIN
  14.  
  15. #include <stdlib.h>
  16. #include <stdio.h>
  17. #include <string.h>
  18. #include <conio.h>
  19. #include <malloc.h>
  20. #include <dos.h>
  21. #include <time.h>
  22. #include <conio.h>
  23. #include <fpclib.h>
  24.  
  25. /*--------------------------------------------------------------------
  26. -
  27. --------------------------------------------------------------------*/
  28.  
  29. typedef          char    CHAR;     /* ch  */
  30. typedef          short   SHORT;    /* s   */
  31. typedef          long    LONG;     /* l   */
  32.  
  33. typedef unsigned char    UCHAR;    /* uch */
  34. typedef unsigned short   USHORT;   /* us  */
  35. typedef unsigned long    ULONG;    /* ul  */
  36.  
  37. typedef unsigned char    BYTE;     /* b   */
  38.  
  39. typedef unsigned char   *PSZ;
  40. typedef unsigned char   *PCH;
  41.  
  42. typedef BYTE            *PBYTE;
  43.  
  44. typedef CHAR            *PCHAR;
  45. typedef SHORT           *PSHORT;
  46. typedef LONG            *PLONG;
  47.  
  48. typedef UCHAR           *PUCHAR;
  49. typedef USHORT          *PUSHORT;
  50. typedef ULONG           *PULONG;
  51.  
  52. typedef unsigned short   BOOL;        /* f         */
  53. typedef BOOL            *PBOOL;
  54.  
  55. typedef unsigned short   SHANDLE;
  56. typedef VOID FAR        *LHANDLE;
  57. typedef VOID FAR        *MPARAM;      /* msg param */
  58.  
  59. typedef LHANDLE          HWND;        /* hwnd      */
  60. typedef HWND            *PHWND;
  61. typedef LHANDLE          HMQ;         /* hmq       */
  62. typedef LHANDLE          HAB;         /* hab       */
  63.  
  64. typedef VOID FAR        *MPARAM;      /* mp        */
  65. typedef MPARAM FAR      *PMPARAM;     /* pmp       */
  66.  
  67. typedef VOID FAR        *MRESULT;     /* mres      */
  68. typedef MRESULT FAR     *PMRESULT;    /* pmres     */
  69.  
  70. typedef USHORT           HMODULE;     /* hmod      */
  71. typedef HMODULE FAR     *PHMODULE;
  72.  
  73. typedef VOID FAR        *PVOID;
  74.  
  75. /*--------------------------------------------------------------------
  76. -
  77. --------------------------------------------------------------------*/
  78.  
  79. #define INT_TIMER               0x08
  80. #define INT_KBD                 0x09
  81. #define INT_BIOSKBD             0x16
  82.  
  83. #define SYSQMAXEVENTS           50
  84. #define DEFAULT_QUEUE_SIZE      10;
  85.  
  86. /*--------------------------------------------------------------------
  87. -
  88. --------------------------------------------------------------------*/
  89.  
  90. #define TRUE                    (BOOL) 1
  91. #define FALSE                   (BOOL) 0
  92.  
  93. /*--------------------------------------------------------------------
  94. - MouGetEventMask/MouSetEventMask events
  95. --------------------------------------------------------------------*/
  96.  
  97. #define MOUSE                   0x007f
  98. #define MOUSE_MOTION            0x0001
  99. #define MOUSE_BN1_DOWN          0x0002
  100. #define MOUSE_BN1_UP            0x0004
  101. #define MOUSE_BN2_DOWN          0x0008
  102. #define MOUSE_BN2_UP            0x0010
  103. #define MOUSE_BN3_DOWN          0x0020
  104. #define MOUSE_BN3_UP            0x0040
  105.  
  106. #define MOUSE_BN_DOWN           0x002A
  107. #define MOUSE_BN_UP             0x0054
  108.  
  109. /*--------------------------------------------------------------------
  110. - Keyboard Shift Key masks.
  111. --------------------------------------------------------------------*/
  112.  
  113. #define INSKEY                  0x80
  114. #define CAPSLOCK                0x40
  115. #define NUMLOCK                 0x20
  116. #define SCROLLLOCK              0x10
  117. #define ALTKEY                  0x08
  118. #define CTRLKEY                 0x04
  119. #define BSHFTKEY                0x03
  120. #define LSHFTKEY                0x02
  121. #define RSHFTKEY                0x01
  122.  
  123. /*--------------------------------------------------------------------
  124. - Messages
  125. --------------------------------------------------------------------*/
  126.  
  127. #define WM_NULL                 0x0000
  128.  
  129.  
  130. #define WM_CLOSE                0x0029
  131. #define WM_QUIT         0x002a
  132.  
  133. /*--------------------------------------------------------------------
  134. - Mouse input messages
  135. --------------------------------------------------------------------*/
  136.  
  137. #define WM_MOUSEFIRST           0x0070
  138. #define WM_MOUSELAST            0x0079
  139.  
  140. #define WM_BUTTONCLICKFIRST    0x0071
  141. #define WM_BUTTONCLICKLAST    0x0079
  142.  
  143. #define WM_MOUSEMOVE        0x0070
  144. #define WM_BUTTON1DOWN          0x0071
  145. #define WM_BUTTON1UP            0x0072
  146. #define WM_BUTTON1DBLCLK        0x0073
  147. #define WM_BUTTON2DOWN          0x0074
  148. #define WM_BUTTON2UP        0x0075
  149. #define WM_BUTTON2DBLCLK    0x0076
  150. #define WM_BUTTON3DOWN          0x0077
  151. #define WM_BUTTON3UP        0x0078
  152. #define WM_BUTTON3DBLCLK    0x0079
  153.  
  154. /*--------------------------------------------------------------------
  155. - WM_HITTEST return codes
  156. --------------------------------------------------------------------*/
  157.  
  158. #define HT_NORMAL        0
  159. #define HT_TRANSPARENT        (-1)
  160. #define HT_DISCARD        (-2)
  161. #define HT_ERROR        (-3)
  162.  
  163. /*--------------------------------------------------------------------
  164. - Key/Character input messages
  165. --------------------------------------------------------------------*/
  166.  
  167. #define WM_CHAR                 0x007a
  168. #define WM_VIOCHAR        0x007b
  169.  
  170. /*--------------------------------------------------------------------
  171. - WM_CHAR fs field bits
  172. --------------------------------------------------------------------*/
  173.  
  174. #define KC_CHAR         0x0001
  175. #define KC_VIRTUALKEY           0x0002
  176. #define KC_SCANCODE             0x0004
  177. #define KC_SHIFT                0x0008
  178. #define KC_CTRL                 0x0010
  179. #define KC_ALT                  0x0020
  180. #define KC_KEYUP                0x0040
  181. #define KC_PREVDOWN             0x0080
  182. #define KC_LONEKEY              0x0100
  183. #define KC_DEADKEY              0x0200
  184. #define KC_COMPOSITE            0x0400
  185. #define KC_INVALIDCOMP        0x0800
  186.  
  187. /*--------------------------------------------------------------------
  188. - Reserve a range of messages for help manager.  This range includes
  189. - public messages, defined below, and private ones, which need to be
  190. - reserved here to prevent clashing with application messages
  191. --------------------------------------------------------------------*/
  192.  
  193. #define WM_HELPBASE        0x0F00 /* Start of msgs for help manager */
  194. #define WM_HELPTOP        0x0FFF /* End of msgs for help manager     */
  195.  
  196. #define WM_USER         0x1000
  197.  
  198. /*--------------------------------------------------------------------
  199. - Virtual key values
  200. --------------------------------------------------------------------*/
  201.  
  202. #define VK_BUTTON1        0x01
  203. #define VK_BUTTON2        0x02
  204. #define VK_BUTTON3        0x03
  205. #define VK_BREAK        0x04
  206. #define VK_BACKSPACE        0x05
  207. #define VK_TAB            0x06
  208. #define VK_BACKTAB        0x07
  209. #define VK_NEWLINE        0x08
  210. #define VK_SHIFT        0x09
  211. #define VK_CTRL         0x0A
  212. #define VK_ALT            0x0B
  213. #define VK_ALTGRAF        0x0C
  214. #define VK_PAUSE        0x0D
  215. #define VK_CAPSLOCK        0x0E
  216. #define VK_ESC            0x0F
  217. #define VK_SPACE        0x10
  218. #define VK_PAGEUP        0x11
  219. #define VK_PAGEDOWN        0x12
  220. #define VK_END            0x13
  221. #define VK_HOME         0x14
  222. #define VK_LEFT         0x15
  223. #define VK_UP            0x16
  224. #define VK_RIGHT        0x17
  225. #define VK_DOWN         0x18
  226. #define VK_PRINTSCRN        0x19
  227. #define VK_INSERT        0x1A
  228. #define VK_DELETE        0x1B
  229. #define VK_SCRLLOCK        0x1C
  230. #define VK_NUMLOCK        0x1D
  231. #define VK_ENTER        0x1E
  232. #define VK_SYSRQ        0x1F
  233. #define VK_F1            0x20
  234. #define VK_F2            0x21
  235. #define VK_F3            0x22
  236. #define VK_F4            0x23
  237. #define VK_F5            0x24
  238. #define VK_F6            0x25
  239. #define VK_F7            0x26
  240. #define VK_F8            0x27
  241. #define VK_F9            0x28
  242. #define VK_F10            0x29
  243. #define VK_F11            0x2A
  244. #define VK_F12            0x2B
  245. #define VK_F13            0x2C
  246. #define VK_F14            0x2D
  247. #define VK_F15            0x2E
  248. #define VK_F16            0x2F
  249. #define VK_F17            0x30
  250. #define VK_F18            0x31
  251. #define VK_F19            0x32
  252. #define VK_F20            0x33
  253. #define VK_F21            0x34
  254. #define VK_F22            0x35
  255. #define VK_F23            0x36
  256. #define VK_F24            0x37
  257.  
  258. #define VK_MENU                 VK_F10
  259.  
  260. #define VK_DBCSFIRST            0x0080
  261. #define VK_DBCSLAST        0x00ff
  262.  
  263. #define VK_USERFIRST        0x0100
  264. #define VK_USERLAST        0x01ff
  265.  
  266. /*--------------------------------------------------------------------
  267. - system variable access contants.
  268. --------